Extended user profile

ABSTRACT

A method of extending user profile. A user specific data related to an application is received and stored for integration with a user profile. A template for the application is received and stored. The template tailors the user specific data based on aesthetic preferences of the user to generate a tailored user specific data. The user profile is extended based on the user specific data for the application and the template for the application. The user profile including the tailored user specific data may be provided for rendering. Local information, e.g., geographical location, of the user may be determined to tailor the user profile based on the local information. The user specific data and/or the template may be in a markup language format. Update to the user specific data and/or template may be pushed when available.

BACKGROUND

The widespread use and increasing development of the Internet hasallowed exchanges of information in ways previously not possible. TheInternet has allowed social networks to now be made available online.Social networks enable users to publish and share information, e.g.,their name, school, metropolitan groups, events, activities, interests,etc., with the people they care about and to interact with other usersonline. For example, commercial social networking sites such asMySpace™, Facebook™, Orkut™, etc., are now a common place for onlineusers, especially among the younger generation.

In general, users of social network sites can publish and customizetheir profiles based on the capabilities and limitations of the socialnetwork site. For example, users can publish information by filling inspecific boxes provided by the social network site. Furthermore, userscan rearrange how the entered information is being published andrendered, thereby tailoring the published profile to their personalpreferences given the capabilities of the commercial social networkingsites.

Unfortunately, users are unable to customize their profile beyond thelimitations provided by the social network site. For example, users thatwish to publish their latest result, e.g., their score and levelcompleted, in playing a set top console game device such as, forexample, X-Box™, PlayStation™, Nintendo™, etc. are unable to do so ifthe social network does not provide an input mean for entering andpublishing that information. In other words, applications to be renderedand published by a given social network site is limited to the specificimplementation of the site and is non-extendable. As such, it isdifficult to aggregate additional information, beyond what is offered bysocial network sites, to become part of the user profile.

Publishing to a typical user profile requires the user to manually enterthe information to be published as part of the user profile. Forexample, a user is required to manually enter information about a givenapplication to be published as part of the user profile, e.g., level andscore achieved in a particular game. In other words, there is noautomatic mean of capturing information related to a given applicationto be published and rendered by the social network site except byrequiring the user to manually enter that information.

Moreover, a user is required to manually enter updated information inorder to reflect new developments in order to update the user profile.For example, the user is required to manually enter new results for agiven game, e.g., completed level 4 with the score of 613, in order toupdate a previously accomplished result, e.g., completed level 3 withthe score of 200. In other words, updating user profile is performedmanually as new information becomes available.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A need has arisen to extend and aggregate additional information tobecome part of a user profile, beyond what is being offered by thesocial network site. Moreover, a need has arisen to automaticallycapture information for publication and rendition by the social networkas part of a user profile. Furthermore, a need has arisen toautomatically update a user profile on a social network. Describedherein is technology for, among other things, extending user profiles ona social network as well as automatically capturing user specific datafor various applications and automatically updating a user profile.Therefore, users can now extend their profile to applications beyondthat being supported by social networks. Moreover, users are nowrelieved from manually entering various information including updatingvarious user specific data as they become available.

In one embodiment, a user may wish to include their performance fromplaying a particular console game as part of the user profile. A userspecific data, e.g., the user's performance such as level and scorecompleted, related to an application, e.g., a console game, may bereceived and stored. A template used for the application may also besent by the application, e.g., console video game, and received by theserver. The template may be used to tailor the user specific data inaccordance with aesthetic preferences of the user. It is appreciatedthat while user specific data may change often, the template isrelatively static and does not change unless the user changes thetemplate.

The user specific data may be tailored based on the template and addedas a portion of the user's extended profile. Thus, the user profile isextended to include the user selected application. It is appreciatedthat according to one embodiment, the user specific data may be furthertailored based on the geographical location of the user. For example, ifthe user is in Spain, the user profile or a portion of the user profilecomprising the user specific data related to the application may betailored and rendered in Spanish. It is appreciated that in oneembodiment, the user may be authenticated prior to extending the userprofile. It is appreciated that updated user specific data and/ortemplate may be pushed by the application when they become available.

As such, techniques described herein provide a way to extend a userprofile in a social network. Moreover, the user specific information maybe automatically supplied for rendition as part of the user profile.Furthermore, the user specific information may be automatically updatedand tailored based on the aesthetic preferences and/or geographicallocation of the user. As a result, quality of service and page load timemay also be improved.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part ofthis specification, illustrate embodiments and, together with thedescription, serve to explain their principles:

FIG. 1 shows a block diagram of an exemplary computing systemenvironment for implementing an embodiment.

FIG. 2 shows a block diagram of an exemplary system for extending userprofile, in accordance with an embodiment.

FIG. 3 shows a flowchart of an exemplary process for extending userprofile, in accordance with an embodiment.

FIG. 4 shows a flowchart of an exemplary process for updating a userprofile, in accordance with an embodiment.

FIG. 5 shows an exemplary illustration of data flow for updating a userprofile, in accordance with an embodiment.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments of the claimedsubject matter, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with theembodiments, it will be understood that they are not intended to limitthe claimed subject matter to these embodiments. On the contrary, theclaimed subject matter is intended to cover alternatives, modificationsand equivalents, which may be included within the spirit and scope ofthe claimed subject matter as defined by the claims. Furthermore, in thedetailed description of the present invention, numerous specific detailsare set forth in order to provide a thorough understanding of theclaimed subject matter. However, it will be obvious to one of ordinaryskill in the art that the claimed subject matter may be practicedwithout these specific details. In other instances, well known methods,procedures, components, and circuits have not been described in detailso as not to unnecessarily obscure aspects of the claimed subjectmatter.

Some portions of the detailed descriptions that follow are presented interms of procedures, logic blocks, processing, and other symbolicrepresentations of operations on data bits within a computer or digitalsystem memory. These descriptions and representations are the means usedby those skilled in the data processing arts to most effectively conveythe substance of their work to others skilled in the art. A procedure,logic block, process, etc., is herein, and generally, conceived to be aself-consistent sequence of steps or instructions leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these physicalmanipulations take the form of electrical or magnetic signals capable ofbeing stored, transferred, combined, compared, and otherwise manipulatedin a computer system or similar electronic computing device. For reasonsof convenience, and with reference to common usage, these signals arereferred to as bits, values, elements, symbols, characters, terms,numbers, or the like with reference to the claimed subject matter.

It should be borne in mind, however, that all of these terms are to beinterpreted as referencing physical manipulations and quantities and aremerely convenient labels and are to be interpreted further in view ofterms commonly used in the art. Unless specifically stated otherwise asapparent from the discussion herein, it is understood that throughoutdiscussions of the present embodiment, discussions utilizing terms suchas “determining” or “outputting” or “transmitting” or “recording” or“locating” or “storing” or “displaying” or “receiving” or “recognizing”or “utilizing” or “generating” or “providing” or “accessing” or“checking” or “notifying” or “delivering” or “sending” or “extending” or“storing” or “rendering” or “authenticating” or “tailoring” or the like,refer to the action and processes of a computer system, or similarelectronic computing device, that manipulates and transforms data. Thedata is represented as physical (electronic) quantities within thecomputer system's registers and memories and is transformed into otherdata similarly represented as physical quantities within the computersystem memories or registers or other such information storage,transmission, or display devices.

Overview

A need has arisen to extend and aggregate additional information tobecome part of a user profile, beyond what is being offered by thesocial network site. Moreover, a need has arisen to automaticallycapture information for publication and rendition by the social networkas part of a user profile. Furthermore, a need has arisen toautomatically update a user profile on a social network. Describedherein is technology for, among other things, extending user profile ona social network as well as automatically capturing user specific datafor various applications and automatically updating a user profile.Therefore, users can now extend their profile to applications beyondthat being supported by social networks. Moreover, users are nowrelieved from manually entering various information including updatingvarious user specific data as they become available.

In one embodiment, a user specific data that may be related to anapplication is received. For example, the user's performance in playinga console game may be sent from the console video game and received by aserver. The user performance may be the level completed and the score,for instance. In this example, the user may wish to include theperformance in playing the console game as part of the user profile. Assuch, the received user specific data is operable for rendition andintegration within the user profile. It is appreciated that the userspecific data may be received in a markup language format, e.g.,extensible markup language (XML). The user specific data may be stored.

A template used for the application may also be sent by the application,e.g., console video game, and received by the server. The template maybe used to tailor the user specific data in accordance with aestheticpreferences of the user. It is appreciated that while user specific datamay change often, the template is relatively static and does not changeunless the user changes the template. In other words, the template maybe generic and common to many of the users of the application. Thetemplate may be stored for subsequent use.

The user specific data may be tailored based on the template and addedas a portion of the user's extended profile. Thus, the user profile isextended to include the user selected application. The tailored userspecific data may be provided for rendition as a portion of the userprofile, thereby extending the user profile. It is appreciated that adisplay, e.g., a liquid crystal display (LCD), may render the tailoreduser specific data.

It is appreciated that according to one embodiment, the user specificdata may be further tailored based on the geographical location of theuser. For example, if the user is in Spain, the user profile or aportion of the user profile comprising the user specific data related tothe application may be tailored and rendered in Spanish. Similarly, ifthe user is in an English speaking country, the user profile or aportion of the user profile comprising the user specific data related tothe application may be tailored and rendered in English.

In one embodiment, the user may be authenticated prior to extending theuser profile. It is appreciated that updated user specific data and/ortemplate may be pushed by the application when they become available.For example, once the user completes a new level of a console game, thenew user specific data may be pushed onto the social network such thatthe user profile can be updated. It is appreciated that prior toupdating the user profile, the identity of the user may be confirmed byauthenticating the user. The template may not change as often as theuser specific data. As such, the template may be stored and be used totailor the updated user specific data once the new user specific data ispushed. However, it is appreciated that once a new template is received,it may replace the old template such that user specific data whether newor old can be tailored and rendered based on the new template inaccordance with user aesthetic preferences.

As such, techniques described herein provide a way for the extending auser profile in a social network. Moreover, the user specificinformation may be automatically supplied for rendition as part of theuser profile. Furthermore, the user specific information may beautomatically updated and tailored based on the aesthetic preferencesand/or geographical location of the user.

EXAMPLE OPERATING ENVIRONMENTS

With reference to FIG. 1, an exemplary system for implementingembodiments includes a general purpose computing system environment,such as computing system environment 100. Computing system environment100 may include, but is not limited to, servers, desktop computers,laptops, tablet PCs, mobile devices, and smartphones. In a basicconfiguration, computing system environment 100 typically includes atleast one processing unit 102 and memory 104. Depending on the exactconfiguration and type of computing system environment, memory 104 maybe volatile (such as RAM), non-volatile (such as ROM, flash memory,etc.) or some combination of the two. This basic configuration isillustrated in FIG. 1 by dashed line 106.

System memory 104 may include, among other things, Operating System 118(OS), application(s) 120, and content manager 122. Content manager 122may facilitate management of content that is public, limited access, andprivate, e.g., a website, a family photo album, financial documents,achievements in a video game, etc. Content manager 122 may furtherinclude user content receiver 124 which handles receiving and storing ofuser specific data for a given application, e.g., user performance in aconsole video game. The console video game may be X-Box™, PlayStation™,Nintendo™, etc. Moreover, the application may include any application,e.g., a photo manager, news update, etc. Content manager 122 may alsoreceive and store templates for various applications in an applicationtemplate receiver 126. The application template receiver storestemplates that may be a generic template for an application that tailorsa user specific content based on aesthetic preferences of a user. Thecontent manager 122 may further include a localization handler 128 thathandles information regarding a geographical location of a user, e.g.,when a user resides in Spain the content is published in Spanish, etc. Aprofile handler 130 may be used to tailor user specific data forrendering as part of a user profile. The tailored user specific data maybe based on the information stored in the user content receiver 124,application template receiver 126 and the localization handler 128.

Additionally, computing system environment 100 may also have additionalfeatures/functionality. For example, computing system environment 100may also include additional storage (removable and/or non-removable)including, but not limited to, magnetic or optical disks or tape. Suchadditional storage is illustrated in FIG. 1 by removable storage 108 andnon-removable storage 110. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Memory104, removable storage 108 and nonremovable storage 110 are all examplesof computer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by computing systemenvironment 100. Any such computer storage media may be part ofcomputing system environment 100.

Computing system environment 100 may also contain communicationsconnection(s) 112 that allow it to communicate with other devices.Communications connection(s) 112 is an example of communication media.Communication media typically embodies computer readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. The term computerreadable media as used herein includes both storage media andcommunication media.

Communications connection(s) 112 may allow computing system environment100 to communication over various networks types including, but notlimited to, Bluetooth, Ethernet, Wi-fi, Infrared Data Association(IrDA), Local area networks (LAN), Wireless Local area networks (WLAN),wide area networks (WAN) such as the internet serial, and universalserial bus (USB). It is appreciated the various network types thatcommunication connection(s) 112 connect to may run a plurality ofnetwork protocols including, but not limited to, transmission controlprotocol (TCP), internet protocol (IP), real-time transport protocol(RTP), real-time transport control protocol (RTCP), file transferprotocol (FTP), and hypertext transfer protocol (HTTP).

Computing system environment 100 may also have input device(s) 114 suchas a keyboard, mouse, pen, voice input device, touch input device,remote control, etc. Output device(s) 116 such as a display, speakers,etc. may also be included. All these devices are well known in the artand need not be discussed at length here.

EXAMPLE SYSTEM

The following discussion sets forth details of the present technologysystems for network communication management. FIG. 2 illustrates examplecomponents used by various embodiments of the present technology. System200 includes components or modules that, in various embodiments, arecarried out by a processor under the control of computer-readable andcomputer-executable instructions. The computer-readable andcomputer-executable instructions reside, for example, in data storagefeatures such as computer usable memory 104, removable storage 108,and/or non-removable storage 110 of FIG. 1.

FIG. 2 shows a block diagram of an exemplary system for extending userprofile, in accordance with an embodiment. System 200 may comprise auser content receiver module 210, an application template module 220, alocalization handler module 230, an authentication module 240, anapplication programming interface (API) handler 250 and a profilehandler 260.

According to one embodiment, system 200 receives a user specific data,e.g., score and level completed, by an application, e.g., X-Box™ videogame. It is appreciated that there may be an optional call to anapplication provider when the application is installed by the user tostart the publishing model. Based on the optional call variousinformation, e.g., specific user, user preference on information to bepublished, token that can be used for API and geographical location, maybe obtained. It is further appreciated that various exemplaryembodiments refer to X-Box™ video game as an example of an application.However, embodiments should not be construed as limited to X-Box™ videogame since X-Box™ video game is provided as an example. For example,other applications may include other video console games, e.g.,PlayStation™, Nintendo™, photo manager, etc. and/or non-video consolegame applications such as a photo manager, news update manager, etc.Thus, the use of X-Box™ and/or video game console is exemplary andshould not be construed as limiting the scope of the embodimentspresented herein.

Moreover, the system 200 may receive a template that tailors the userspecific data based on aesthetic preferences of the user. As such, whenthe portion of the user profile that relates to the application is beingrendered, the user specific data may be tailored based on the template.The template may be generic among many users using the same application.The user specific data may further be tailored based on the geographicallocation of the user, e.g., portion of the user profile related to theapplication rendered in Spanish if the user resides in Spain. It isappreciated that user specific data and/or template may be in a markuplanguage format, e.g., extensible markup language (XML), hypertextmarkup language (HTML), extensible HTML (XHTML), etc.

In one embodiment, the API handler 250 is operable to handle various APIcalls. For example, the API handler 250 may handle an API call to updatea user specific data. It is appreciated that the API call may bereceived when an update for a user specific data is available. Forexample, the user specific data may be pushed by the application, e.g.,X-Box™ game, to the system 200. It is appreciated that pushing data maybe implemented using various methods, e.g., representational statetransfer (REST) style programmatic API call. The API handler 250 maysimilarly handle an API call to update a template for tailoring the userspecific data in a user profile based on aesthetic preferences of auser.

In one embodiment, when the API handler 250 receives an API call toupdate a user specific data, the authentication module 240 mayauthenticate the user and/or the application for which the user specificdata is being received. For example, when the API call is received, theauthentication module 240 may authenticate the user to confirm theidentity of the user and that the user has consented to update the userspecific data as part of the user profile. Similarly, the authenticationmodule 240 may authenticate the application to ensure that the format ofthe user specific data is conforming to the API standard.

After authentication, the user content receiver module 210 may receiveand store the newly supplied user specific data. The profile handler 260may use the user specific data and template to render the information aspart of the user profile. For example, the profile handler 260 maytailor newly supplied user specific data, received from the API handler250 and/or from the user content receiver module 210, by using atemplate received from the application template module 220. Thus, thetailored user specific data may be rendered as part of the user profile.In other words, the profile handler 260 may use the template from theapplication template module 220 to tailor the received user specificdata and to integrate the tailored user specific data as part of theuser profile.

It is appreciated that the template may have been stored prior to thereceipt of the updated user specific data. However, it is appreciatedthat an update for the template may be received in a similar manner tothat of the user specific data. The template may also be stored in theapplication template module 220 for subsequent use. It is appreciatedthat the profile handler module 260 may send a response back to theapplication using the API handler module 250. The response may be asignal that the profile has been extended and/or updated successfullyand is ready for rendition.

It is appreciated that the user specific data may change frequently incomparison to the template. For example, each time a user launches anapplication, e.g., X-Box™ video game, the user specific data may change,e.g., completion of a new stage and new score. In comparison, thetemplate may be generic to many users utilizing the same application. Itis further appreciated, that the template may be stored for later use inrendering the user profile as long as the template remains unchanged.

It is appreciated that the user specific data may further be tailoredbased on a geographical location of the user. For example, thelocalization handler module 230 may allow strings, texts and/or imagesfrom the template and/or user specific data to be localized based on thegeographical location of the user, e.g., locality. In one exemplaryembodiment, when a user resides in Spain, the user specific data and/orthe template comprise a set of name and value pairs that define theresource name and the localized resource value, identifying Spain as thegeographical location. Thus, Spanish may be used to render theapplication comprising the user specific data and the template as partof the user profile.

EXAMPLE OPERATIONS

The following discussion sets forth in detail the operations of thepresent technology for content management. With reference to FIGS. 3 and4, flowcharts 300 and 400 each illustrate example blocks used by variousembodiments of the present technology. Flowcharts 300 and 400 includeprocesses that, in various embodiments, are carried out by a processorunder the control of computer-readable and computer-executableinstructions. The computer-readable and computer-executable instructionsreside, for example, in data storage features such as computer usablememory 104, removable storage 108, and/or non-removable storage 110 ofFIG. 1.

Referring now to FIG. 3, a flowchart 300 of an exemplary process forextending user profile, in accordance with an embodiment is shown. Auser wishes to publish user specific data related to an application aspart of the user profile. For example, the user may wish to publishrecently accomplished stage and corresponding scores for an X-Box™ videogame. At step 310, the user may be authenticated to ensure that theinformation being supplied by the application, e.g., X-Box™ video game,is based on a request from the user and that the user has consented topublish that information as part of the user profile.

Upon authenticating the user, at step 320, a user specific data for theapplication may be received. For example, user specific data may be thelevel and score accomplished by the user in an X-Box™ video game. It isappreciated that the user specific data may be in a markup languageformat, e.g., extensible markup language (XML), hypertext markuplanguage (HTML), extensible HTML (XHTML), etc. It is further appreciatedthat the user specific data received may be sent from the applicationand received by the API handler module 250. The user specific data maybe stored at the user content receiver module 210 for later use. Assuch, the user specific data may also be received from the user contentreceiver module 210.

At step 330, a template for the user specific data related to theapplication is received. The template may be a generic template thattailors the user specific data based on the aesthetic preferences of theuser. In one embodiment, the template may be a generic template formultiple users whereas the user specific data is specific to each user.The template for example may tailor the user specific data based on aspecific font, background image, background color, etc., in order totailor the user specific data to have a certain “look and feel.” Thetemplate may be in a markup language format, e.g., extensible markuplanguage (XML), hypertext markup language (HTML), extensible HTML(XHTML), etc. It is appreciated that the template may be received by theAPI handler module 250 and stored at the application template module 220for subsequent use. Thus, the template may also be received from theapplication module 220 after the template is being stored.

It is appreciated that even though step 330 is described to follow step320, the order of the flow may be different. For example, first at step330 a template for the user specific data related to the application maybe received and then at step 320 a user specific data for theapplication may be received. As such, the order of which the flowdiagram is described should not be construed as limiting the scope ofthe embodiments.

At step 340, geographical location of the user may be determined. Forexample, the localization handler module 230 may allow strings, textsand/or images from the template and/or user specific data to belocalized based on the geographical location of the user. In oneexemplary embodiment, when a user resides in Spain, the user specificdata and/or the template comprise a set of name and value pairs thatdefine the resource name and the localized resource value, identifyingSpain as the geographical location. Thus, Spanish may be used to rendera portion of the user profile that includes the application comprisingthe user specific data and the template.

At step 350, the received information may be stored. For example, theuser specific data may be stored in the user content receiver module 210and the template (if an updated one) may be stored in the applicationtemplate module 220. As such, an updated template may replace theoriginal template.

At step 360, the user profile may be extended based on the receivedinformation. For example, the user profile may now comprise theapplication, e.g., X-Box™ video game, along with user specific data,e.g., most recent level completed and corresponding score. It isappreciated that in one embodiment, the profile handler 260 may use thetemplate to tailor the received user specific data based on aestheticpreferences of the user. It is further appreciated that the profilehandler 260 may further tailor the user specific data based on thelocale of the user. The profile handler 260 may send a response back tothe application, e.g., X-Box™ video game, notifying the application thatthe user profile has been successfully updated and/or extended and thatthe user profile is ready for rendition.

At step 365, the extended user profile that comprises the application isprovided for rendition. For example, the extended user profile may beprovided by the profile handler 260 to the user for rendering. At step370, the extended user profile may be optionally rendered on a display,e.g., a liquid crystal display (LCD).

Update data may be pushed to the system 200 when an update to a userspecific data and/or template is available. For example, when an updateduser specific data is available, the user specific data may be pushed byusing a representational state transfer (REST) style programmatic APIcall. When an update is available, at step 380 the identity of the usermay be authenticated. For example, the authentication ensures that theuser has consented and has authorized the user profile to be update withthe application pushing the user specific content. It is appreciatedthat authentication may also include authenticating the application andconformity of the data being pushed.

When the user is authenticated, at step 390, the updated information maybe received to update data. For example, when the update information isfor the user specific data, the updated user specific data replaces theold user specific data. The update information may then be stored forsubsequent use. It is appreciated that the template may be updated in asimilar fashion.

Referring now to FIG. 4, a flowchart 400 of an exemplary process forupdating a user profile, in accordance with an embodiment is shown. Atstep 410, the system 200 may receive an API call to update a userspecific data. For example, the API call may be received when an updateto user specific data is available upon which the application making theAPI call pushes the update to the system 200. The user specific data maybe pushed using a representational state transfer (REST) styleprogrammatic API call.

At step 420, the user is authenticated in order to verify that the APIcall is from an authorized application and an authorized user. At step430, the service API may be accessed when the user is authenticated. Assuch, at step 440, the user specific data may be generated and updatedby using the service API, e.g., metadata and user setting is providedand the user specific data is received and the old user specific data isupdated.

At step 450, the updated user specific data may be stored for subsequentuse and rendition as part of the user profile. It is appreciated thatthe user specific data may be in a markup language format, e.g.,extensible markup language (XML), hypertext markup language (HTML),extensible HTML (XHTML), etc. Optionally, at step 460, the API handlermay respond back to the application making the API call that thereceived information has been used to update the user specific data andthat the new information is available for rendition as part of the userprofile.

The updated information, e.g., updated user specific data, and atemplate from the application template module 220 may be used by theprofile handler 260 in order to tailor the updated user specific databased on aesthetic preferences of the user. At step 470, the updateduser specific data that is tailored may be provided for rendition aspart of the user profile. It is appreciated that the profile handler 260may also use the localization handler module 230 to localize the userspecific data that is tailored according to geographical location of theuser. For example, if the user resides in Italy, the user specific datathat is tailored may also be tailored for rendition in Italian. At step480, the updated user profile may be optionally rendered, e.g., using anLCD display.

It is appreciated that a similar flow diagram may be used in order toupdate the template. The updated template may subsequently be stored inthe application template module 220 for later use.

Referring now to FIG. 5, an exemplary illustration of data flow forupdating a user profile, in accordance with an embodiment is shown. Atstep 508, an API call is received from an application, e.g., X-Box™video game. The API call may be received when an update for a userspecific data is available, e.g., new level and score completed. The APIcall may be a representational state transfer (REST) style programmaticAPI call that pushes the user specific data. It is appreciated that theAPI call may comprise a REST API uniform resource locator (URL),parameters and delegation tokens. The API front end 510 receives the APIcall and sends a query to check API access 512.

An application authentication platform 520 receives the query to checkAPI access 512. The application authentication platform 520 may send aquery to access the metadata and user setting 522, e.g., applicationidentification, user caller identification (CID) from a storage 530. Inresponse to the query, the storage 530 provides metadata and usersettings 532, e.g., application metadata, user specific data, etc. Basedon the received metadata and the user settings 532, the applicationauthentication platform 520 decides whether access should be granted tothe application making the API call. The access result 524 iscommunicated to the API front end 510.

If access is granted, the API front end 510 transmits the API call 514query to the API back end 540. For example, the API call 514 may be acall service API and comprise of API URL, parameters, user specificdata, template, locale of the user, application identification, userCID, passport unique identifier (PUID), etc. Thus, the API back end 540may send a query to update information 542, e.g., user specific data, bystoring the update information in the storage 530. The result of theupdate that includes the user specific data, e.g., updated result 538,may be sent back to the API back end 540. The API back end 540 may sendan API response 544 to the API front end 510. The API front end 510 mayoptionally respond back to the application by sending an API callresponse 516. The API call response 516 may be an indication that theinformation, e.g., user specific data, has been updated and that theupdated user profile is available for rendition as part of the userprofile.

It is appreciated that once the information, e.g., user specific data,has been updated, the profile handler 260 may update the profile asdescribed above. Thus, the updated profile is provided for rendition andmay be rendered using a display. In one embodiment, the updated userspecific data is tailored based on the template to provide the “look andfeel” of the application in accordance with aesthetic preferences of theuser. It is appreciated that the tailored information may also betailored based on the locale of the user, as presented and discussedabove.

It is appreciated that the user specific information, template, etc.,may be in markup language format, e.g., extensible markup language(XML), hypertext markup language (HTML), extensible HTML (XHTML), etc.As such, the profile handler 260 may resolve the markup language intoHTML and present the resolved information to the viewing browser as aportion of the user profile.

As a result, a user profile may be extended in a social network site.Moreover, the user specific information may be automatically suppliedfor rendition as part of the user profile. Furthermore, the userspecific information may be automatically updated and tailored based onthe aesthetic preferences and/or geographical location of the user.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

1. A method of extending a user profile, said method comprising:receiving user specific data related to an application, said userspecific data operable to be rendered and integrated within said userprofile; receiving a template for said application, said templateoperable to tailor said user specific data based on aesthetic preferenceof a user to generate tailored user specific data; based on said userspecific data for said application and said template for saidapplication, extending said user profile to comprise said tailored userspecific data; and based on said extending, providing said user profilefor rendering, said user profile comprising said tailored user specificdata, at least some of at least one of said receiving user specificdata, said receiving a template, said extending, and said providingimplemented, at least in part, via a microprocessor.
 2. The method asdescribed in claim 1, comprising: determining local information for saiduser based on a geographical location of said user, said user profiletailored based on said local information.
 3. The method as described inclaim 1, said user specific data in a markup language format.
 4. Themethod as described in claim 1, comprising: storing said user specificdata; and storing said template for said application.
 5. The method asdescribed in claim 1, comprising: rendering said user profile.
 6. Themethod as described in claim 1, comprising: authenticating said user. 7.The method as described in claim 1, said template in a markup languageformat.
 8. The method as described in claim 1, comprising: receiving anupdate for said user specific data for said application; and based onsaid update for said user specific data, providing an updated userprofile comprising said update for said user specific data that istailored based on said template, said updated user profile operable forrendering.
 9. The method as described in claim 8, comprising: storingsaid update for said user specific data.
 10. The method as described inclaim 1, comprising: receiving an update for said template for saidapplication; and based on said update for said template, providing anupdated user profile comprising said user specific data that is tailoredbased on said update for said template, said updated user profileoperable for rendering.
 11. The method as described in claim 10,comprising: storing said update for said template.
 12. A computerstorage device comprising computer-executable instructions for updatinga user profile, which when executed via a microprocessor perform actionscomprising: receiving an application programming interface (API) call toupdate user specific data related to an application, said update of saiduser specific data operable to be rendered and integrated within saiduser profile, said update operable to result in an updated user specificdata; authenticating a user; responsive to said authenticating, storingsaid updated user specific data; generating an updated user profilebased on said updated user specific data and a template for saidapplication, said template configured to tailor said updated userspecific data based on aesthetic preference of said user to generateupdated tailored user specific data; and providing said updated userprofile, said updated user profile operable for rendering.
 13. Thecomputer storage device of claim 12, said actions comprising: tailoringsaid updated user specific data based on a geographical locality of saiduser.
 14. The computer storage device of claim 12, said updated userspecific data in extensible markup language (XML) format.
 15. Thecomputer storage device of claim 12, said actions comprising: renderingsaid updated user profile.
 16. The computer storage device of claim 12,said updated user specific data pushed when said update is available.17. A system for extending a user profile comprising: an applicationprogramming interface (API) handler operable to receive an API call toreceive user specific data; a user content receiver module operable tostore and provide said user specific data related to an application,said user specific data operable to be rendered and integrated withinsaid user profile; an application template module operable to store andprovide a template operable to tailor said user specific data based onaesthetic preference of a user; and a profile handler operable to extendsaid user profile to comprise tailored user specific data based on saidtemplate within said application template module and said user specificdata, said user profile operable for rendering, at least some of atleast one of said API handler, said user content receiver module, saidapplication template module, and said profile handler implemented, atleast in part, via a microprocessor.
 18. The system of claim 17,comprising: a localization handler operable to tailor said user specificdata based on geographical location of said user.
 19. The system ofclaim 17, comprising: an authentication module operable to authenticatesaid user and said authentication module operable to authenticate saidapplication.
 20. The system of claim 17, comprising: a secondapplication programming interface (API) handler operable to receive anupdate for said user specific data, said second API handler operable toreceive an update for said template, said update for said user specificdata and said update for said template stored.